package com.eight.paper.admin.domain;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.eight.common.annotation.Excel;
import com.eight.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.ArrayList;
import java.util.Date;

/**
 * 考试试卷对象 exam_paper
 * 
 * @author eight
 * @date 2023-10-31
 */
@Data
public class ExamPaper extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Integer id;

    /** 所属机构id,二级节点，sys_dept.id */
    private Integer deptId;

    /** 考试部门id集合,sys_dept.id */
    @Excel(name = "考试部门id集合")
    private String depts;

    /** 名称 */
    @Excel(name = "名称")
    private String paperName;

    /** 开始时间，精确到秒 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开始时间")
    private Date beginTime;

    /** 结束时间，精确到秒 */
    @Excel(name = "结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /** 时长，分钟 */
    @Excel(name = "结束时间")
    private Integer duration;

    /** 试卷总分 */
    @Excel(name = "结束时间")
    private Long paperScore;

    /** 状态，0:未发布;1:已发布;2:取消发布 */
    @Excel(name = "结束时间")
    private String status;

    /** 试卷类型，0:固定试卷;1:时段试卷;2:任务试卷 */
    @Excel(name = "试卷类型，0:固定;1:时段;2:任务")
    private String paperType;

    /** 组卷类型，0:动态生成;1:手动随机;2:手动 */
    @Excel(name = "组卷类型，0:动态;1:随机;2:手动")
    private String composeType;

    /** 阅卷人id，sys_user.id,id集合 */
    @Excel(name = "阅卷人id")
    private String grades;

    /** 章节id集合，question_repo.id,抽题组卷、随机组卷类型试卷使用 */
    private String sections;

    /** 难度，1:一级;2:二级;3:三级,存储类型：1,2,3;若null表示全部,不区分 */
    private String levels;

    /** 支持模式：防作弊、人脸识别、定时抓拍、考题乱序、结束自动提交（考试时间结束）、提交显示分数 */
    private String patterns;

    /** 删除标示，1：已删除 */
    private Integer delFlag;

    /** 章节id集合，question_repo.id,抽题组卷、随机组卷类型试卷使用 */
    private String[] sectionList;

    /** 难度，1:一级;2:二级;3:三级,存储类型：1,2,3;若null表示全部,不区分 */
    private String[] levelList;

    /** 支持模式：防作弊、人脸识别、定时抓拍、考题乱序、结束自动提交（考试时间结束）、提交显示分数 */
    private String[] patternList;

}
